I do not understand, I do not know, because there is a description of this function is included .. Help!


\Zvjyazuvannya.cpp|13|undefined reference to `_imp__Options|

Code:
/* Глава 5. Версия atou, использующая явное связывание. */
#include "EvryThng.h"
#include "OPTIONS.C"
#include "REPRTERR.C"
int _tmain (int argc, LPTSTR argv [])
{
   /* Объявить переменную Asc2Un как функцию. */
   BOOL (*Asc2Un)(LPCTSTR, LPCTSTR, BOOL);
   DWORD LocFileIn, LocFileOut, LocDLL, DashI;
   HINSTANCE hDLL;
   FARPROC pA2U;

   LocFileIn = Options (argc, argv, _T ("i"), &DashI, NULL);
   LocFileOut = LocFileIn + 1;
   LocDLL = LocFileOut + 1;
   /* Проверить существование файла, а также опущен ли параметр DashI. */
   /* Загрузить функцию преобразования из ASCII в Unicode. */
   hDLL = LoadLibrary (argv [LocDLL]);
   if (hDLL == NULL)
      ReportError (_T ("Не удается загрузить DLL."), 1, TRUE);
   /* Получить адрес точки входа. */
   pA2U = GetProcAddress (hDLL, "Asc2Un");
   if (pA2U == NULL)
      ReportError (_T ("Не найдена точка входа."), 2, TRUE);
   /* Привести тип указателя. Здесь можно использовать typedef. */
   Asc2Un = (BOOL (*)(LPCTSTR, LPCTSTR, BOOL)) pA2U;

   /* Вызвать функцию. */
   Asc2Un (argv [LocFileIn], argv [LocFileOut], FALSE);
   FreeLibrary (hDLL);
   return 0;
}
Code:
/* Utility function to extract option flags from the command line.  */

#include "Everything.h"
#include <stdarg.h>

DWORD Options (int argc, LPCTSTR argv [], LPCTSTR OptStr, ...)

/* argv is the command line.
    The options, if any, start with a '-' in argv[1], argv[2], ...
    OptStr is a text string containing all possible options,
    in one-to-one correspondence with the addresses of Boolean variables
    in the variable argument list (...).
    These flags are set if and only if the corresponding option
    character occurs in argv [1], argv [2], ...
    The return value is the argv index of the first argument beyond the options. */

{
    va_list pFlagList;
    LPBOOL pFlag;
    int iFlag = 0, iArg;

    va_start (pFlagList, OptStr);

    while ((pFlag = va_arg (pFlagList, LPBOOL)) != NULL
                && iFlag < (int)_tcslen (OptStr)) {
        *pFlag = FALSE;
        for (iArg = 1; !(*pFlag) && iArg < argc && argv [iArg] [0] == _T('-'); iArg++)
            *pFlag = _memtchr (argv [iArg], OptStr [iFlag],
                    _tcslen (argv [iArg])) != NULL;
        iFlag++;
    }

    va_end (pFlagList);

    for (iArg = 1; iArg < argc && argv [iArg] [0] == _T('-'); iArg++);

    return iArg;
}